package com.niit.session21;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import com.niit.session20.JDBCUtils;

public class Login {
	
	
	public static void main(String[] args) {
		Login login = new Login();
		try {
			Scanner sc = new Scanner(System.in);
//			通过键盘录入用户名和密码
			login.login(sc.nextLine(), sc.nextLine());
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}
	
	public void login(String username,String password) throws SQLException {
		Connection conn = JDBCUtils.getConn();
//		Statement statement = conn.createStatement();
//		常规写法，使用字符串拼接，容易导致SQL注入
//		String sql = "SELECT * FROM user where username = '"+username+"' and password = '"+password+"';";
//		System.out.println(sql);
//		ResultSet rs = statement.executeQuery(sql);
//		PreparedStatement会在内部处理好SQL语句的拼接，防止SQL注入
//		?问号指的是占位符，后续可以通过set方法给sql语句设置参数
		PreparedStatement ps = conn.prepareStatement( "SELECT * FROM user where username = ? and password = ?");
//		set方法给占位符设置数据，下标从1开始
//		要根据不同的数据类型使用不同的set方法
		ps.setString(1, username);
		ps.setString(2, password);
		System.out.println(ps.toString());
		ResultSet rs = ps.executeQuery();
		if(rs.next()) {
			System.out.println("登录成功！");
		}else {
			System.out.println("用户名或密码错误！");
			
		}
		
		
	}

}
